/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package com.co.servlets.formulas;

import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import com.co.formulas.Formulas;

/**
 *
 * @author Sebastian Isaza Góme
 */
public class InteresCompuesto extends HttpServlet{

    String periodicidad;
    String tasaInteres ;
    String valorFuturo ;
    String valorPresente ;
    String interes ;
    String descuentoComercial ;
    String descuentoRacional;
    String descuentoCompuesto;
    String valorNominal;
    String valorEfectivo;
    String tasaPeriodica;
    String tasaNominal;
    String tasaEfectivaAnual;
    String tasaNominalAnual;
    String tasaNominalAnualVencida;
    String tasaNominalVencida;
    String tasaNominalAnticipada;
    String tasaPeriodicaAnticipada;
    String tasaPeriodicaVencida;
    String IPC;
    String puntos;
    String tasaTributación;
    String tasaCombinada;
    String rentabilidadNeta;
    String rentabilidadReal;
    String anualidad;
    String abono;
    String mesAbono;
    String gradiente;
    String baseGradiente;

    Formulas f;

    public InteresCompuesto(){
        f = new Formulas();
    }

    public void respuesta (HttpServletRequest  req, HttpServletResponse res) {
         valorFuturo = String.valueOf(req.getParameter("valorFuturo"));
         valorPresente = String.valueOf(req.getParameter("valorPresente"));
         anualidad = String.valueOf(req.getParameter("anualidad"));
         interes = String.valueOf(req.getParameter("interes"));
         descuentoCompuesto = String.valueOf(req.getParameter("descuentoCompuesto"));
         valorNominal = String.valueOf(req.getParameter("valorNominal"));
         valorEfectivo = String.valueOf(req.getParameter("valorEfectivo"));
         tasaPeriodicaVencida = String.valueOf(req.getParameter("tasaPeriodicaVencida"));
         tasaNominalVencida = String.valueOf(req.getParameter("tasaNominalVencida"));
         tasaEfectivaAnual = String.valueOf(req.getParameter("tasaEfectivaAnual"));
         tasaNominalAnticipada = String.valueOf(req.getParameter("tasaNominalAnticipada"));
         tasaPeriodicaAnticipada = String.valueOf(req.getParameter("tasaPeriodicaAnticipada"));
         periodicidad = String.valueOf(req.getParameter("periodicidad"));    

        try{
            //Calculo del Valor Futuro Presente Compuesto.
            ValorFinalCompuesto();
            //Calculo del Interes Presente Compuesto.
            InteresPresenteCompuesto();
        }catch(Exception e){
            System.out.println(e.getMessage());
        }
    }

    public double ValorFinalCompuesto(){
        if (valorPresente != null && tasaPeriodicaVencida != null && periodicidad != null){
           return f.ValorFuturoPresenteCompuesto(valorPresente, tasaPeriodicaVencida, periodicidad);
        }else if (valorPresente != null && tasaNominalVencida != null && periodicidad != null){
           return f.ValorFuturoPresenteCompuesto(valorPresente, tasaNominalVencida, periodicidad);
        }else if (valorPresente != null && tasaEfectivaAnual != null && periodicidad != null){
           return f.ValorFuturoPresenteCompuesto(valorPresente, tasaEfectivaAnual, periodicidad);
        }else if (valorPresente != null && tasaNominalAnticipada != null && periodicidad != null){
           return f.ValorFuturoPresenteCompuesto(valorPresente, tasaNominalAnticipada, periodicidad);
        }else if (valorPresente != null && tasaPeriodicaAnticipada != null && periodicidad != null){
           return f.ValorFuturoPresenteCompuesto(valorPresente, tasaPeriodicaAnticipada, periodicidad);
        }
        return 0;
    }

    public double InteresPresenteCompuesto(){
        if(valorPresente != null && tasaPeriodicaVencida != null && periodicidad != null){
            return f.InteresPresenteCompuesto(valorPresente, tasaPeriodicaVencida, periodicidad);
        }else if(valorPresente != null && tasaNominalVencida != null && periodicidad != null){
            return f.InteresPresenteCompuesto(valorPresente, tasaNominalVencida, periodicidad);
        }else if(valorPresente != null && tasaEfectivaAnual != null && periodicidad != null){
            return f.InteresPresenteCompuesto(valorPresente, tasaEfectivaAnual, periodicidad);
        }else if(valorPresente != null && tasaNominalAnticipada != null && periodicidad != null){
            return f.InteresPresenteCompuesto(valorPresente, tasaNominalAnticipada, periodicidad);
        }else if(valorPresente != null && tasaPeriodicaAnticipada != null && periodicidad != null){
            return f.InteresPresenteCompuesto(valorPresente, tasaPeriodicaAnticipada, periodicidad);
        }
        return 0;
    }
}